/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 *//*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package action;

import DAO.Constantes;
import DAO.DAO_Articulo;
import DAO.DAO_Revista;
import DAO.DAO_Seccion;
import DAO.DAO_SeccionUsuarioRol;
import DAO.DAO_Usuario;
import actionForm.AnadirArticuloActionForm;
import actionForm.ModificarRevistaActionForm;
import clases.Articulo;
import clases.Revista;
import clases.Rol;
import clases.Seccion;
import clases.SeccionUsuarioRol;
import clases.Usuario;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 *
 * @author Rafa
 */
public class AceptadosArtAction extends org.apache.struts.action.Action {

    /* forward name="success" path="" */
    private static final String SUCCESS = "success";
    private static final String FAILURE = "failure";

    /**
     * This is the action called from the Struts framework.
     *
     * @param mapping The ActionMapping used to select this instance.
     * @param form The optional ActionForm bean for this request.
     * @param request The HTTP Request we are processing.
     * @param response The HTTP Response we are processing.
     * @throws java.lang.Exception
     * @return
     */
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        AnadirArticuloActionForm formulario = (AnadirArticuloActionForm) form;
        
        DAO_Usuario usuariodao = new DAO_Usuario();
        //Usuario user = (Usuario) request.getAttribute("usuarioLogado");
        Usuario user = usuariodao.consultaUsuario("raraspri", true);
        Set<SeccionUsuarioRol> seccionesRolUser = user.getSeccionUsuarioRols();

        SeccionUsuarioRol[] conjuntoSeccionesRolUser = seccionesRolUser.toArray(new SeccionUsuarioRol[]{});
        List<Seccion> secciones = new ArrayList();
        for (SeccionUsuarioRol conjuntoSeccionesRolUser1 : conjuntoSeccionesRolUser) {
            if (conjuntoSeccionesRolUser1.getRol().getNombre().equals(Constantes.getROL_SECCION())) {
                secciones.add(conjuntoSeccionesRolUser1.getSeccion());
            }
        }

        if (!secciones.isEmpty()) {
            List<List<Articulo>> articulosSecciones = new ArrayList();
            for (Seccion seccione : secciones) {
                Articulo[] conjuntoArticulos = seccione.getArticulos().toArray(new Articulo[]{});
                List<Articulo> articulosSeccion = Arrays.asList(conjuntoArticulos);
                List<Articulo> articulosSeccionNuevos = new ArrayList();
                for (Articulo articulosSeccion1 : articulosSeccion) {
                    if (articulosSeccion1.getEstadoArticulo().getEstado().equals(Constantes.getART_EN_MAQUETACION())) {
                        articulosSeccionNuevos.add(articulosSeccion1);
                    }
                }
                articulosSecciones.add(articulosSeccionNuevos);
            }
            request.setAttribute("articulos", articulosSecciones);

            return mapping.findForward(SUCCESS);
        } else {
            formulario.setMensajeAlert(Constantes.getMENSAJE_SECCION_VACIO());
            return mapping.findForward(FAILURE);
        }

    }
}

